Allan B. Wilson; abwilson@awasu.com
Version 1.9.1; 14-Jun-06
The asynchronous I/O library introduced a few versions back has been enhanced—specifically to fix a few bugs:
No charge for personal or non-profit use. For commercial use or customization, please e-mail the author.
This plug-in combines multiple news feeds into a single, composite RSS 2.0 feed. For example, if there are several related feeds you would prefer to view as one combined feed in Awasu, this plug-in is for you.
The plug-in handles Atom- and various RSS-format feeds.
This is a standard Awasu channel plug-in. Install it by clicking New Channel in the File menu, then selecting the plug-in to open it. In the Awasu dialog that appears, specify the following parameters:
ScriptTimeout Informs Awasu how many seconds the plug-in should be allowed to run before timing out. With the new asynchonous I/O routines, the default 30 seconds should generally be sufficient.
Title The name to give to your new channel.
Link The URL to be associated with the new channel.
Description How you want to describe the new channel.
MaxItemsPerFeed The maximum number of news items to display from each individual feed.
ShowFeedTitles True to include the title of the original source feed as part of each news item title; false otherwise.
FeedUrl-n The URLs of the individual source news feeds.
ConfigFile If specified, indicates a file containing all the parameters above except ScriptTimeout (which Awasu needs to see). This means most of the parameters can reside in a separate file, which can be easily edited and exchanged with other Awasu CombineFeeds users.
Simply create a new “your_combined_feed.ini” file defining the standard parameters plus as many feeds as you want in the form FeedUrl-n (going from 1 to n, without gaps). Enter your file’s name as ConfigFile in Awasu’s channel creation/modification dialog.
Note that although the new asynchronous I/O capability drastically reduces script time-out errors, if you have a large number of feeds you might need to increase ScriptTimeout to give the plug-in time to retrieve and process them all.
For an example of such a .ini file, see yahoo.ini, which is included in CombineFeeds.zip.
You can create multiple channels that use the plug-in to generate multiple composite feeds.
Whenever Awasu refreshes the plug-in’s channel, the plug-in downloads the specified news feeds, extracting title, link, and description information for news items in each feed, and writes them all to a single RSS 2.0 file, which Awasu then displays.
The plug-in was written in the Python programming language (www.python.org), using the win32 extensions. Most of the “heavy lifting” in the plug-in is accomplished by Mark Pilgrim’s feedparser (www.feedparser.org), which also allows the plug-in to handle various flavors of RSS as well as the (in development) Atom spec. Phillip Pearson’s Feed Normalizer (www.myelin.co.nz/feed_normalizer) contributed some useful ideas.
A utility, py2exe 0.6.2, “freezes” the Python code, i.e., converts it into a standalone executable and supporting files so that Python needn’t be installed on a system to use the plug-in.